PyGame - анимације¶
Питање 1.¶
Шта је резултат извршавања следеће наредбе?
pygame.time.wait(1)
Q-184: Изабери тачан одговор:
Питање 4.*¶
Дат је следећи непотпун код.
import pygame as pg, random pg.init() prozor = pg.display.set_mode((200,200)) def nasumicna_boja(): return (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)) pg.time.set_timer(pg.USEREVENT,1000) kraj = False treba_crtati = True while not kraj: if treba_crtati: prozor.fill(nasumicna_boja()) ___________ dogadjaj = pg.event.wait() if dogadjaj.type == pg.QUIT: kraj = True elif dogadjaj.type == pg.USEREVENT: treba_crtati = True pg.quit()
Уколико је циљ да програм исцртава прозор којем сваке секунде промени боју позадине наведи које од наредних команди и у ком редоследу треба додати на означено место да би програм радио како је очекивано.
pg.display.update() treba_crtati = True treba_crtati = False
Q-187: Изабери тачан одговор:
Питање 5.**¶
Дата су следећа два кода.
import pygame as pg, random pg.init() prozor = pg.display.set_mode((200,200)) def nasumicna_boja(): return (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)) pg.time.set_timer(pg.USEREVENT,1000) kraj = False treba_crtati = True while not kraj: if treba_crtati: prozor.fill(nasumicna_boja()) pg.display.update() treba_crtati = False dogadjaj = pg.event.wait() if dogadjaj.type == pg.QUIT: kraj = True elif dogadjaj.type == pg.USEREVENT: treba_crtati = True pg.quit()
import pygame as pg, random pg.init() prozor = pg.display.set_mode((200,200)) def nasumicna_boja(): return (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)) pg.time.set_timer(pg.USEREVENT,1000) kraj = False treba_crtati = True while not kraj: if treba_crtati: pg.display.update() treba_crtati = False dogadjaj = pg.event.wait() if dogadjaj.type == pg.USEREVENT: treba_crtati = True elif dogadjaj.type == pg.QUIT: kraj = True pg.quit()
Дати кодови се разликују у редоследу испитивања услова да ли је неки догађај наступио. Да ли се за један исти редослед одигравања догађаја тајмера и гашења прозора може десити да се ова два програма различито понашају?
Q-188: Изабери тачан одговор:
Питање 6.*¶
Нека је дат следећи непотпун код.
import pygame as pg, random pg.init() prozor = pg.display.set_mode((250,250)) pg.time.set_timer(pg.USEREVENT,1000) kraj = False treba_crtati = True boja = 0 while not kraj: if treba_crtati: if boja = 0: pg.draw.circle(prozor, pg.Color("red"), (150, 150), 50) _________ # 1 else: pg.draw.circle(prozor, pg.Color("yellow"), (150, 150), 50) _________ # 2 pg.display.update() treba_crtati = False dogadjaj = pg.event.wait() if dogadjaj.type == pg.QUIT: kraj = True elif dogadjaj.type == pg.USEREVENT: treba_crtati = True _________ # 3 pg.quit()
Коју од наведених команди којој означеној линији треба додати да би програм при извршавању сваке секунде исцртаво круг који наизменичном мења боју из црвене у жуту и обрнуто?
boja = 1
boja = 0
Q-189: Изабери тачан одговор:
Питање 7.*¶
Који од наредних кодова обезбеђују да се, уколико корисник не затвори прозор раније, исцртавања блока 1 изведу тачно 10 пута?
pg.time.set_timer(pg.USEREVENT,1000) kraj = False treba_crtati = True b = 0 while not kraj: if treba_crtati: # blok 1 b = b + 1 dogadjaj = pg.event.wait() if (dogadjaj.type == pg.QUIT) or (b == 10): kraj = True elif dogadjaj.type == pg.USEREVENT: treba_crtati = True pg.quit()
pg.time.set_timer(pg.USEREVENT,1000) kraj = False treba_crtati = True b = 0 while not kraj: if treba_crtati: # blok 1 b = b + 1 dogadjaj = pg.event.wait() if dogadjaj.type == pg.QUIT: kraj = True elif dogadjaj.type == pg.USEREVENT: treba_crtati = True elif b == 10: kraj = True pg.quit()
pg.time.set_timer(pg.USEREVENT,1000) kraj = False treba_crtati = True b = 0 while not kraj: if treba_crtati: # blok 1 b = b + 1 dogadjaj = pg.event.wait() if dogadjaj.type == pg.QUIT: kraj = True elif dogadjaj.type == pg.USEREVENT: treba_crtati = True if b == 10: kraj = True pg.quit()
pg.time.set_timer(pg.USEREVENT,1000) kraj = False treba_crtati = True b = 0 while not kraj: if treba_crtati: # blok 1 b = b + 1 dogadjaj = pg.event.wait() if (dogadjaj.type == pg.QUIT) or (b == 10): kraj = True elif dogadjaj.type == pg.USEREVENT: treba_crtati = True pg.quit()
Q-190: Изабери тачан одговор:
Питање 8.*¶
Шта је резултат извршавања следећег дела кода?
pg.time.set_timer(pg.USEREVENT, 100) kraj = False treba_crtati = True a = 50 x = 0 while not kraj: if treba_crtati: prozor.fill(pg.Color("white")) pg.draw.rect(prozor, pg.Color("red"), (x, 50, a, a)) pg.display.update() treba_crtati = False dogadjaj = pg.event.wait() if dogadjaj.type == pg.QUIT: kraj = True elif dogadjaj.type == pg.USEREVENT: x = x + 10 treba_crtati = True
Q-191: Изабери тачан одговор:
Питање 9.¶
Шта је резултат извршавања следећег дела кода?
(sirina, visina) = (200, 200) prozor = pg.display.set_mode((sirina, visina)) pg.time.set_timer(pg.USEREVENT, 100) kraj = False treba_crtati = True a = 20 while not kraj: if treba_crtati: prozor.fill(pg.Color("white")) pg.draw.circle(prozor, pg.Color("red"), (100, 100), a) pg.display.update() treba_crtati = False dogadjaj = pg.event.wait() if dogadjaj.type == pg.QUIT: kraj = True elif dogadjaj.type == pg.USEREVENT: a = a + 10 treba_crtati = True
Q-192: Изабери тачан одговор:
Питање 10.*¶
Коју наредбу треба додати на означено место коду да би извршавањем следећег кода био приказан квадрат који се креће по хоризонталној путањи с лева на десно, а у тренутку када више не може бити видљив цео поново појављује на почетној позицији и наставља даље да се креће на исти начин?
(sirina, visina) = (200, 200) prozor = pg.display.set_mode((sirina, visina)) pg.time.set_timer(pg.USEREVENT, 100) kraj = False treba_crtati = True pocetna = 100 x = pocetna while not kraj: if treba_crtati: prozor.fill(pg.Color("white")) pg.draw.rect(prozor, pg.Color("red"), (x, 100, 50, 50)) pg.display.update() treba_crtati = False dogadjaj = pg.event.wait() if dogadjaj.type == pg.QUIT: kraj = True elif dogadjaj.type == pg.USEREVENT: _____________________ treba_crtati = True
Q-193: Изабери тачан одговор:
Питање 11.**¶
Коју наредбу треба додати на означено место коду да би извршавањем следећег кода био приказан круг који се креће по хоризонталној путањи с лева на десно, а у тренутку када више ниједан део круга не може бити видљив круг се поново појављује на почетној позицији и наставља даље да се креће?
(sirina, visina) = (200, 200) prozor = pg.display.set_mode((sirina, visina)) pg.time.set_timer(pg.USEREVENT, 100) kraj = False treba_crtati = True pocetna = 100 a = pocetna while not kraj: if treba_crtati: prozor.fill(pg.Color("white")) pg.draw.circle(prozor, pg.Color("red"), (a, 100), 50) pg.display.update() treba_crtati = False dogadjaj = pg.event.wait() if dogadjaj.type == pg.QUIT: kraj = True elif dogadjaj.type == pg.USEREVENT: _____________________ treba_crtati = True
Q-194: Изабери тачан одговор: